Operating systems and hypervisors that support execution of virtual machines running in computer systems typically employ hierarchically arranged page tables to manage mapping of memory from a virtual memory space to a physical memory space that is divided into pages. When a page is mapped from an entry of a page table at the lowest level, the size of the page that is mapped is typically 4 KB. When a page is mapped from an entry of a page table that is one level higher, the size of the page that is mapped is typically 2 MB. When memory is plentiful, significant improvements in memory performance is observed by mapping to large (e.g., 2 MB) pages. However, as memory becomes scarce, memory performance of an operating system or a hypervisor employing large pages degrades quickly and becomes worse than when small (e.g., 4 KB) pages are employed.